gtk-builder-tool: Add some tests
authorMatthias Clasen <mclasen@redhat.com>
Sat, 2 May 2015 21:21:31 +0000 (17:21 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 2 May 2015 21:39:06 +0000 (17:39 -0400)
20 files changed:
configure.ac
testsuite/Makefile.am
testsuite/tools/Makefile.am [new file with mode: 0644]
testsuite/tools/simplify/test1.expected [new file with mode: 0644]
testsuite/tools/simplify/test1.ui [new file with mode: 0644]
testsuite/tools/simplify/test2.expected [new file with mode: 0644]
testsuite/tools/simplify/test2.ui [new file with mode: 0644]
testsuite/tools/simplify/test3.expected [new file with mode: 0644]
testsuite/tools/simplify/test3.ui [new file with mode: 0644]
testsuite/tools/simplify/test4.expected [new file with mode: 0644]
testsuite/tools/simplify/test4.ui [new file with mode: 0644]
testsuite/tools/simplify/test5.expected [new file with mode: 0644]
testsuite/tools/simplify/test5.ui [new file with mode: 0644]
testsuite/tools/simplify/test6.expected [new file with mode: 0644]
testsuite/tools/simplify/test6.ui [new file with mode: 0644]
testsuite/tools/simplify/test7.expected [new file with mode: 0644]
testsuite/tools/simplify/test7.ui [new file with mode: 0644]
testsuite/tools/simplify/test8.expected [new file with mode: 0644]
testsuite/tools/simplify/test8.ui [new file with mode: 0644]
testsuite/tools/test-simplify [new file with mode: 0755]

index a05765300e422ae6718455953201c16f20850c9d..bf8316eff4591e5824d8464491e9f552314afdc2 100644 (file)
@@ -1912,6 +1912,7 @@ testsuite/css/parser/Makefile
 testsuite/gdk/Makefile
 testsuite/gtk/Makefile
 testsuite/reftests/Makefile
+testsuite/tools/Makefile
 docs/Makefile
 docs/reference/Makefile
 docs/reference/gdk/Makefile
index 33bbe37652b715a62475af8f6554fdc22fafb88f..418aa417aeed8f0e9da62e1ab132e12bcd8da3f1 100644 (file)
@@ -1,6 +1,6 @@
 include $(top_srcdir)/Makefile.decl
 
-SUBDIRS = gdk gtk a11y css reftests
+SUBDIRS = gdk gtk a11y css reftests tools
 
 -include $(top_srcdir)/git.mk
 
diff --git a/testsuite/tools/Makefile.am b/testsuite/tools/Makefile.am
new file mode 100644 (file)
index 0000000..6ccefc1
--- /dev/null
@@ -0,0 +1,26 @@
+include $(top_srcdir)/Makefile.decl
+
+NULL =
+
+test_simplify = \
+       simplify/test1.ui simplify/test1.expected \
+       simplify/test2.ui simplify/test2.expected \
+       simplify/test3.ui simplify/test3.expected \
+       simplify/test4.ui simplify/test4.expected \
+       simplify/test5.ui simplify/test5.expected \
+       simplify/test6.ui simplify/test6.expected \
+       simplify/test7.ui simplify/test7.expected \
+       simplify/test8.ui simplify/test8.expected \
+       $(NULL)
+
+EXTRA_DIST += \
+       $(test_simplify)
+
+TESTS_ENVIRONMENT = \
+       GTK_BUILDER_TOOL="$(top_builddir)/gtk/gtk-builder-tool"
+
+TEST_PROGS += \
+       test-simplify   \
+       $(NULL)
+
+-include $(top_srcdir)/git.mk
diff --git a/testsuite/tools/simplify/test1.expected b/testsuite/tools/simplify/test1.expected
new file mode 100644 (file)
index 0000000..de1472e
--- /dev/null
@@ -0,0 +1,5 @@
+<!-- default property gets stripped -->
+<interface>
+  <object class="GtkWindow">
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test1.ui b/testsuite/tools/simplify/test1.ui
new file mode 100644 (file)
index 0000000..4f03810
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- default property gets stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible">False</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test2.expected b/testsuite/tools/simplify/test2.expected
new file mode 100644 (file)
index 0000000..20ffe8d
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- non-default property not stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible">True</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test2.ui b/testsuite/tools/simplify/test2.ui
new file mode 100644 (file)
index 0000000..20ffe8d
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- non-default property not stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible">True</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test3.expected b/testsuite/tools/simplify/test3.expected
new file mode 100644 (file)
index 0000000..2490e79
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- translatable property not stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible" translatable="yes">False</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test3.ui b/testsuite/tools/simplify/test3.ui
new file mode 100644 (file)
index 0000000..2490e79
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- translatable property not stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible" translatable="yes">False</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test4.expected b/testsuite/tools/simplify/test4.expected
new file mode 100644 (file)
index 0000000..41d8ecc
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- irrelevant comments and context are stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible">True</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test4.ui b/testsuite/tools/simplify/test4.ui
new file mode 100644 (file)
index 0000000..eb5b0f0
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- irrelevant comments and context are stripped -->
+<interface>
+  <object class="GtkWindow">
+    <property name="visible" comments="foo" context="bla">True</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test5.expected b/testsuite/tools/simplify/test5.expected
new file mode 100644 (file)
index 0000000..1fb898b
--- /dev/null
@@ -0,0 +1,9 @@
+<!-- placeholders are stripped -->
+<interface>
+  <object class="GtkWindow">
+    <child>
+      <object class="GtkBox">
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test5.ui b/testsuite/tools/simplify/test5.ui
new file mode 100644 (file)
index 0000000..e379abd
--- /dev/null
@@ -0,0 +1,12 @@
+<!-- placeholders are stripped -->
+<interface>
+  <object class="GtkWindow">
+    <child>
+      <object class="GtkBox">
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test6.expected b/testsuite/tools/simplify/test6.expected
new file mode 100644 (file)
index 0000000..8d4495b
--- /dev/null
@@ -0,0 +1,5 @@
+<!-- non-canonical property name works -->
+<interface>
+  <object class="GtkWindow">
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test6.ui b/testsuite/tools/simplify/test6.ui
new file mode 100644 (file)
index 0000000..e4f394d
--- /dev/null
@@ -0,0 +1,6 @@
+<!-- non-canonical property name works -->
+<interface>
+  <object class="GtkWindow">
+    <property name="default_width">-1</property>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test7.expected b/testsuite/tools/simplify/test7.expected
new file mode 100644 (file)
index 0000000..a75c4d4
--- /dev/null
@@ -0,0 +1,8 @@
+<!-- default child property gets stripped -->
+<interface>
+  <object class="GtkBox">
+    <child>
+      <object class="GtkLabel"/>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test7.ui b/testsuite/tools/simplify/test7.ui
new file mode 100644 (file)
index 0000000..52e0da2
--- /dev/null
@@ -0,0 +1,12 @@
+<!-- default child property gets stripped -->
+<interface>
+  <object class="GtkBox">
+    <child>
+      <object class="GtkLabel">
+      </object>
+      <packing>
+        <property name="expand">False</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test8.expected b/testsuite/tools/simplify/test8.expected
new file mode 100644 (file)
index 0000000..d5b6825
--- /dev/null
@@ -0,0 +1,11 @@
+<!-- non-default child property remains -->
+<interface>
+  <object class="GtkBox">
+    <child>
+      <object class="GtkLabel"/>
+      <packing>
+        <property name="expand">True</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/simplify/test8.ui b/testsuite/tools/simplify/test8.ui
new file mode 100644 (file)
index 0000000..1aec7ad
--- /dev/null
@@ -0,0 +1,12 @@
+<!-- non-default child property remains -->
+<interface>
+  <object class="GtkBox">
+    <child>
+      <object class="GtkLabel">
+      </object>
+      <packing>
+        <property name="expand">True</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/tools/test-simplify b/testsuite/tools/test-simplify
new file mode 100755 (executable)
index 0000000..2de4366
--- /dev/null
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+GTK_BUILDER_TOOL=${GTK_BUILDER_TOOL:-gtk-builder-tool}
+TEST_DATA_DIR=${TEST_DATA_DIR:-./simplify}
+TEST_RESULT_DIR=${TEST_RESULT_DIR:-/tmp}
+
+shopt -s nullglob
+TESTS=( "$TEST_DATA_DIR"/*.ui )
+
+echo "1..${#TESTS}"
+
+I=1
+for t in ${TESTS[*]}; do
+  name=$(basename $t .ui)
+  expected="$TEST_DATA_DIR/$name.expected"
+  result="$TEST_RESULT_DIR/$name.out"
+
+  $GTK_BUILDER_TOOL simplify $t 2>/dev/null >$result
+
+  if diff "$expected" "$result" > /dev/null; then
+    echo "ok $I $name"
+  else
+    echo "not ok $I $name"
+  fi
+
+  I=$((I+1))
+done